1. Technical Field
The present invention relates in general to the data processing field. More specifically, the present invention relates to the field of data transfer between computer systems.
2. Background Art
Since the dawn of the computer age, computer systems have become indispensable in many fields of human endeavor including engineering design, machine and process control, and information storage and access. In the early days of computers, companies such as banks, industry, and the government would purchase a single computer which satisfied their needs, but by the early 1950""s many companies had multiple computers and the need to move data from one computer to another became apparent. At this time computer networks began being developed to allow computers to work together.
Computer networks allow low cost personal computer systems to connect to larger computer systems to perform tasks that such low cost systems could not perform alone. Most companies in the United States today have one or more computer networks. The topology and size of the networks may vary according to the computer systems being networked and the design of the system administrator. It is very common, in fact, for companies to have multiple computer networks. Many large companies have a sophisticated blend of local area networks (LANs) and wide area networks (WANs) that effectively connect most computers in the company to each other.
Numerous different systems have evolved for computers on a network to exchange data. For example, known network protocols establish the manner for computers to exchange data. One example of a known network communication protocol is Transmission Control Protocol/Internet Protocol, known more commonly as TCP/IP. TCP/IP defines a protocol for transmitting small packets of data between two computer systems on a network. While the network communication protocol provides the basic infrastructure for sending and receiving small packets of data, higher-level mechanisms are defined that use the network protocol to accomplish larger tasks. For example, a distributed file management system may transfer a file from one computer system to another on the network. While the network protocol carries out the actual transmission of the data packets, the receiving computer must have a compatible file manager running to recognize the transmission, to assemble the file from the packets, and to store the file on the receiving computer system.
Sometimes it is necessary or desired to package large quantities of data together for transfer between computer systems. Some known methods for packaging large quantities of data use data compression to minimize the size of the file or files being transmitted. For example, personal computers often use a ZIP utility to convert files from an uncompressed format to a compressed format, and an UNZIP utility to convert compressed files to uncompressed files. These compression techniques are typically invoked manually by a user as required to compress files that the user selects. This prevents a user from defining a package today that needs to be assembled and distributed three days from now. In addition, known tools for packaging files together only provide a single output format. Thus, if a package needs to be distributed to an IBM compatible platform and to a UNIX platform, different tools must be used to generate a package in each of those formats. Without a mechanism that supports defining packages of different types easily and efficiently in different output formats, the efficiency of transferring packages of data between distributed systems will be impaired.
According to the present invention, an apparatus and method for creating packages and for transferring packages between computer systems provides a graphical user interface that allows a user to define various attributes for a package. Logical packages may be defined, which specify package elements to include in the package. Physical packages may also be defined, which contain a copy of the package elements specified in the logical package. Once a user defines a logical package, the logical package may be transferred to an endpoint system. The endpoint system reads the logical package, and from the parameters in the logical package determines where to retrieve the package elements and what other actions are appropriate while retrieving the package elements and constructing a physical package. In this manner, the endpoint system retrieves the package elements as required. The preferred embodiment of the present invention defines a packager using an object oriented framework mechanism that defines both core and extensible functions. Core functions of the framework mechanism cannot be modified by a user, while extensible functions in the framework mechanism are extended by a user to define a run-time package application. By providing an object oriented package framework mechanism, a developer can quickly and efficiently generate new package definitions and new features on the graphical user interface used to define a package.
The foregoing and other features and advantages of the invention will be apparent from the following more particular description of preferred embodiments of the invention, as illustrated in the accompanying drawings.